# 若向函数的形参中传递任意数量的实参，必须将其对应的形参放在函数里的最后。

#传递任意数量的实参
#旧版写法
"""
def test_mer(size, *num) :    # *num 相当于让Python创建一个空元组，能够储存任意数量的实参。
    print("\n测试组别：" + str(size))
    print("输出测试结果:")
    for test in num :
        print("-" + test)
"""

#新版代码写法
def test_mer(size, *num) :
    print(f"\n测试组别：{size}")    # 代码中的"f"应该是相当于调用特定形参的一个标记吧。
    print("输出测试结果:")
    for test in num :
        print(f"- {test}")

test_mer(25, "shoe")
test_mer(16, "cat", "dog", "lion")


#传递任意数量的关键字实参
print("")
def user_profile(first, last, **user_info) : # **user_info 即为创建一个名为user_info的空字典。
    profile = {}                    # 创建一个空字典。
    profile['first_name'] = first   # 添加键-值对，将形参first设置为值。
    profile['last_name'] = last     # 同上。
    for key, value in user_info.items() :   # 循环user.info字典的键-值对。
        profile[key] = value        # 将use.info中的键-值对添加到profile中。
    return profile                  # 返回profile的值。

user = user_profile('albert', 'einstein', 
                    location='princetion',
                    field='physics')
print(user)

# 将函数导入到模块中（见8.模块/函数导入.py）。